using System;
using System.Collections.Generic;
using System.Text;

using RRHH.Competencias.DataAccessLayer.Generic;
using RRHH.Competencias.DataAccessLayer;
using RRHH.Competencias.Entities;

namespace RRHH.Competencias.Controladores
{
    public class GestorCapacidadCurso
    {
        private IDALCapacidadCurso persistencia;
        

        public GestorCapacidadCurso()
        {
            try
            {
                persistencia = DALProvider.GetDALCapacidadCurso();                
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
            
        }

        public List<CapacidadCurso> Buscar(long? cursoId, long? capacidadId, long? nivelMinimoId, long? nivelMaximoId, long? nivelEsperadoId)
        {
            try 
            {
                return persistencia.Buscar(cursoId, capacidadId, nivelMinimoId, nivelMaximoId, nivelEsperadoId);
            }
	        catch (Exception ex)
	        {
                throw ex;
	        }
        }

        public void Completar(CapacidadCurso itemCompletar)
        {
            try
            {
                GestorCapacidad gestorCapacidad = new GestorCapacidad();
                Capacidad capacidad = new Capacidad(itemCompletar.Capacidad.Id, string.Empty);
                gestorCapacidad.Completar(capacidad);
                itemCompletar.Capacidad = capacidad;

                GestorEnumerador<NivelCapacidad> gestorEnumerador = new GestorEnumerador<NivelCapacidad>();
                itemCompletar.NivelMinimo = gestorEnumerador.GetItem(itemCompletar.NivelMinimo.Id);
                itemCompletar.NivelMaximo = gestorEnumerador.GetItem(itemCompletar.NivelMaximo.Id);
                itemCompletar.NivelEsperado = gestorEnumerador.GetItem(itemCompletar.NivelEsperado.Id);

            }
            catch (Exception ex)
            {
                
                throw ex;
            }
        }

    }

    
}
